using ExcellentProjectPlus.Dominio.Cuestionarios.Entidades;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace ExcellentProjectPlus.Infraestructura.AccesoDatos.Cuestionarios.Mapping
{
    public class CatalogoMap : EntityTypeConfiguration<Catalogo>
    {
        public CatalogoMap()
        {
            // Primary Key
            this.HasKey(t => t.IdCatalogo);

            // Properties
            this.Property(t => t.Clave)
                .IsRequired()
                .HasMaxLength(60);

            this.Property(t => t.NombreCatalogo)
                .IsRequired()
                .HasMaxLength(300);

            this.Property(t => t.ValorCatalogo)
                .IsRequired()
                .HasMaxLength(100);

            this.Property(t => t.Descripcion)
                .IsRequired()
                .HasMaxLength(300);

            this.Property(t => t.Estado)
                .IsRequired()
                .HasMaxLength(20);

            // Table & Column Mappings
            this.ToTable("Catalogo");
            this.Property(t => t.IdCatalogo).HasColumnName("IdCatalogo");
            this.Property(t => t.Clave).HasColumnName("Clave");
            this.Property(t => t.NombreCatalogo).HasColumnName("NombreCatalogo");
            this.Property(t => t.ValorCatalogo).HasColumnName("ValorCatalogo");
            this.Property(t => t.Descripcion).HasColumnName("Descripcion");
            this.Property(t => t.Estado).HasColumnName("Estado");
        }
    }
}
